/******************************************************************************/
/*  Class PDU                                                                 */
/*  PO: S. Maslyakov, rusoil.9@gmail.com                                      */
/*                                                                            */
/*  Revision:     1.0                                                         */
/*  Date:         2011/01/06 16:08:33                                         */
/******************************************************************************/


#ifndef __PDU_H
#define __PDU_H


#include "data_types.h"
#include "Pdu\pdu_def.h"


//==============================================================================
//  Class PDU
//==============================================================================
class PDU
{
public:
  static bool_t CreateSms(const __SMS_CODE_PDU * const _pSmsData,
                          __DATA_PDU * const _pDst);
  static bool_t DecodeSms(const __DATA_PDU * const _pPduSms,
                          __SMS_DECODE_PDU * const _pDst);

private:
  static void SeptetsToOctets(__DATA_PDU * const _pSrc,
                              __DATA_PDU * const _pDst);
  static void OctetsToSeptets(const __DATA_PDU * const _pSrc,
                              __DATA_PDU * const _pDst);
  static uint32_t ConvertTxtNumToPduNum(const int8_t * const _pNum,
                                        uint8_t * const _pDst);
  static uint32_t ConvertBinDecToTxt(const __DATA_PDU * const _pSrc,
                                     uint8_t * const _pDst);
};
//==============================================================================
//==============================================================================


#endif